eventcontroller: Get rid of constructed vfunc
authorBenjamin Otte <otte@redhat.com>
Wed, 7 Mar 2018 00:56:32 +0000 (01:56 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 7 Mar 2018 15:17:15 +0000 (16:17 +0100)
Instead, add the controller to the widget in set_property.

gtk/gtkeventcontroller.c

index 38cf96a98d18940a712c17436517e8aa131105da..754ecba1b5cc3fe5bc3546c5e7a1da0fd6b72c35 100644 (file)
@@ -70,19 +70,21 @@ gtk_event_controller_set_property (GObject      *object,
                                    const GValue *value,
                                    GParamSpec   *pspec)
 {
-  GtkEventControllerPrivate *priv;
-
-  priv = gtk_event_controller_get_instance_private (GTK_EVENT_CONTROLLER (object));
+  GtkEventController *self = GTK_EVENT_CONTROLLER (object);
+  GtkEventControllerPrivate *priv = gtk_event_controller_get_instance_private (self);
 
   switch (prop_id)
     {
     case PROP_WIDGET:
       priv->widget = g_value_get_object (value);
       if (priv->widget)
-        g_object_add_weak_pointer (G_OBJECT (priv->widget), (gpointer *) &priv->widget);
+        {
+          g_object_add_weak_pointer (G_OBJECT (priv->widget), (gpointer *) &priv->widget);
+          _gtk_widget_add_controller (priv->widget, self);
+        }
       break;
     case PROP_PROPAGATION_PHASE:
-      gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (object),
+      gtk_event_controller_set_propagation_phase (self,
                                                   g_value_get_enum (value));
       break;
     default:
@@ -96,9 +98,8 @@ gtk_event_controller_get_property (GObject    *object,
                                    GValue     *value,
                                    GParamSpec *pspec)
 {
-  GtkEventControllerPrivate *priv;
-
-  priv = gtk_event_controller_get_instance_private (GTK_EVENT_CONTROLLER (object));
+  GtkEventController *self = GTK_EVENT_CONTROLLER (object);
+  GtkEventControllerPrivate *priv = gtk_event_controller_get_instance_private (self);
 
   switch (prop_id)
     {
@@ -113,19 +114,6 @@ gtk_event_controller_get_property (GObject    *object,
     }
 }
 
-static void
-gtk_event_controller_constructed (GObject *object)
-{
-  GtkEventController *controller = GTK_EVENT_CONTROLLER (object);
-  GtkEventControllerPrivate *priv;
-
-  G_OBJECT_CLASS (gtk_event_controller_parent_class)->constructed (object);
-
-  priv = gtk_event_controller_get_instance_private (controller);
-  if (priv->widget)
-    _gtk_widget_add_controller (priv->widget, controller);
-}
-
 static void
 gtk_event_controller_dispose (GObject *object)
 {
@@ -153,7 +141,6 @@ gtk_event_controller_class_init (GtkEventControllerClass *klass)
 
   object_class->set_property = gtk_event_controller_set_property;
   object_class->get_property = gtk_event_controller_get_property;
-  object_class->constructed = gtk_event_controller_constructed;
   object_class->dispose = gtk_event_controller_dispose;
 
   /**